package com.softaria.windows.view;

import java.util.List;
import java.util.Map;

import com.softaria.windows.logic.HelpWriter;
import com.softaria.windows.model.View;
import com.softaria.windows.widgets.FrameResizeListenerRegistrator;

/**
 * TypedViewFactory is the interface that looks rather similar to
 * {@link ViewFactory}, but has one difference: it does not take ViewUrl as
 * parameter. Instead it takes
 * 
 * Map<String, List<String>> params
 * 
 * parameter, which is view parameters, carefully parsed for it by
 * {@link DefaultViewFactory}. Note, that it takes no viewID parameter as well!
 * It is supposed that viewID is only to identifies view, but not for
 * determining its behavior.
 * 
 * It is used together with {@link DefaultViewFactory}
 * 
 * @author Roman M Kuzmin (roman@softaria.com)
 * 
 */
public interface TypedViewFactory {

  View createView(Map<String, List<String>> params,
      ViewCloseListenerRegistrator closeListenerRegistrator, FrameResizeListenerRegistrator frlr,
      HelpWriter helpWriter) throws BadViewUrlException;

}
